home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_file.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  5KB  |  215 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. import sys
  5. import os
  6. from array import array
  7. from weakref import proxy
  8. from test.test_support import verify, TESTFN, TestFailed
  9. from UserList import UserList
  10. f = file(TESTFN, 'w')
  11. p = proxy(f)
  12. p.write('teststring')
  13. verify(f.tell(), p.tell())
  14. f.close()
  15. f = None
  16.  
  17. try:
  18.     p.tell()
  19. except ReferenceError:
  20.     pass
  21.  
  22. raise TestFailed('file proxy still exists when the file is gone')
  23. f = file(TESTFN, 'w')
  24. softspace = f.softspace
  25. f.name
  26. f.mode
  27. f.closed
  28. f.softspace = softspace
  29. for attr in ('name', 'mode', 'closed'):
  30.     
  31.     try:
  32.         setattr(f, attr, 'oops')
  33.     except TypeError:
  34.         continue
  35.  
  36.     raise TestFailed('expected TypeError setting file attr %r' % attr)
  37.  
  38. f.close()
  39. l = UserList([
  40.     '1',
  41.     '2'])
  42. f = open(TESTFN, 'wb')
  43. f.writelines(l)
  44. f.close()
  45. f = open(TESTFN, 'rb')
  46. buf = f.read()
  47. f.close()
  48. verify(buf == '12')
  49. a = array('c', 'x' * 10)
  50. f = open(TESTFN, 'rb')
  51. n = f.readinto(a)
  52. f.close()
  53. verify(buf == a.tostring()[:n])
  54. f = open(TESTFN, 'wb')
  55.  
  56. try:
  57.     f.writelines([
  58.         1,
  59.         2,
  60.         3])
  61. except TypeError:
  62.     pass
  63.  
  64. print 'writelines accepted sequence of integers'
  65. f.close()
  66. f = open(TESTFN, 'wb')
  67. l = UserList([
  68.     1,
  69.     2,
  70.     3])
  71.  
  72. try:
  73.     f.writelines(l)
  74. except TypeError:
  75.     pass
  76.  
  77. print 'writelines accepted sequence of integers'
  78. f.close()
  79.  
  80. class NonString:
  81.     pass
  82.  
  83. f = open(TESTFN, 'wb')
  84.  
  85. try:
  86.     f.writelines([
  87.         NonString(),
  88.         NonString()])
  89. except TypeError:
  90.     pass
  91.  
  92. print 'writelines accepted sequence of non-string objects'
  93. f.close()
  94. bad_mode = 'qwerty'
  95.  
  96. try:
  97.     open(TESTFN, bad_mode)
  98. except IOError:
  99.     msg = None
  100.     if msg[0] != 0:
  101.         s = str(msg)
  102.         if s.find(TESTFN) != -1 or s.find(bad_mode) == -1:
  103.             print 'bad error message for invalid mode: %s' % s
  104.         
  105.     
  106. except:
  107.     msg[0] != 0
  108.  
  109. print 'no error for invalid mode: %s' % bad_mode
  110. f = open(TESTFN)
  111. if f.name != TESTFN:
  112.     raise TestFailed, 'file.name should be "%s"' % TESTFN
  113.  
  114. if f.isatty():
  115.     raise TestFailed, 'file.isatty() should be false'
  116.  
  117. if f.closed:
  118.     raise TestFailed, 'file.closed should be false'
  119.  
  120.  
  121. try:
  122.     f.readinto('')
  123. except TypeError:
  124.     pass
  125.  
  126. raise TestFailed, 'file.readinto("") should raise a TypeError'
  127. f.close()
  128. if not f.closed:
  129.     raise TestFailed, 'file.closed should be true'
  130.  
  131. for s in (-1, 0, 1, 512):
  132.     
  133.     try:
  134.         f = open(TESTFN, 'w', s)
  135.         f.write(str(s))
  136.         f.close()
  137.         f.close()
  138.         f = open(TESTFN, 'r', s)
  139.         d = int(f.read())
  140.         f.close()
  141.         f.close()
  142.     except IOError:
  143.         msg = None
  144.         raise TestFailed, 'error setting buffer size %d: %s' % (s, str(msg))
  145.  
  146.     if d != s:
  147.         raise TestFailed, 'readback failure using buffer size %d'
  148.         continue
  149.  
  150. methods = [
  151.     'fileno',
  152.     'flush',
  153.     'isatty',
  154.     'next',
  155.     'read',
  156.     'readinto',
  157.     'readline',
  158.     'readlines',
  159.     'seek',
  160.     'tell',
  161.     'truncate',
  162.     'write',
  163.     'xreadlines',
  164.     '__iter__']
  165. if sys.platform.startswith('atheos'):
  166.     methods.remove('truncate')
  167.  
  168. for methodname in methods:
  169.     method = getattr(f, methodname)
  170.     
  171.     try:
  172.         method()
  173.     except ValueError:
  174.         continue
  175.  
  176.     raise TestFailed, 'file.%s() on a closed file should raise a ValueError' % methodname
  177.  
  178.  
  179. try:
  180.     f.writelines([])
  181. except ValueError:
  182.     pass
  183.  
  184. raise TestFailed, 'file.writelines([]) on a closed file should raise a ValueError'
  185. os.unlink(TESTFN)
  186.  
  187. def bug801631():
  188.     f = file(TESTFN, 'wb')
  189.     f.write('12345678901')
  190.     f.close()
  191.     f = file(TESTFN, 'rb+')
  192.     data = f.read(5)
  193.     if data != '12345':
  194.         raise TestFailed('Read on file opened for update failed %r' % data)
  195.     
  196.     if f.tell() != 5:
  197.         raise TestFailed('File pos after read wrong %d' % f.tell())
  198.     
  199.     f.truncate()
  200.     if f.tell() != 5:
  201.         raise TestFailed('File pos after ftruncate wrong %d' % f.tell())
  202.     
  203.     f.close()
  204.     size = os.path.getsize(TESTFN)
  205.     if size != 5:
  206.         raise TestFailed('File size after ftruncate wrong %d' % size)
  207.     
  208.  
  209.  
  210. try:
  211.     bug801631()
  212. finally:
  213.     os.unlink(TESTFN)
  214.  
  215.